package com.spsoft.core.model.leqidmz.response;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * <p>
 * 纳税人基本信息查询-企业基本信息、税务信息、财务信息;
 * </p>
 *
 * @author dcy
 * @since 2023-12-01
 */
@ApiModel(value = "纳税人企业基本信息查询返回数据")
@EqualsAndHashCode(callSuper = true)
@Data
public class QueryEnterpriseInfoVO extends BaseResponseVO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 基础信息
     */
    @ApiModelProperty(value = "基础信息", notes = "基础信息")
    private Jcxx jcxx;

    /**
     * 企业行业性质列表
     */
    @ApiModelProperty(value = "企业行业性质列表", notes = "企业行业性质列表")
    private List<QyhyxzGrid> qyhyxzGrid;

    /**
     * 消费税纳税人类型列表
     */
    @ApiModelProperty(value = "消费税纳税人类型列表", notes = "消费税纳税人类型列表")
    private List<XfsnsrlxGrid> xfsnsrlxGrid;

    @ApiModel(value = "企业行业性质")
    @Data
    public static class QyhyxzGrid implements Serializable {

        private static final long serialVersionUID = 2L;

        /**
         * 企业行业性质
         */
        @ApiModelProperty(value = "企业行业性质", notes = "企业行业性质")
        private String qyhyxzdm;

        /**
         * 有效期起
         */
        @ApiModelProperty(value = "有效期起", notes = "有效期起")
        private String yxqq;

        /**
         * 有效期止
         */
        @ApiModelProperty(value = "有效期止", notes = "有效期止")
        private String yxqz;
    }

    @ApiModel(value = "消费税纳税人类型")
    @Data
    public static class XfsnsrlxGrid  implements Serializable {

        private static final long serialVersionUID = 2L;

        /**
         * 消费税纳税人类型
         */
        @ApiModelProperty(value = "消费税纳税人类型", notes = "消费税纳税人类型")
        private String xfsnsrlxdm;

        /**
         * 有效期起
         */
        @ApiModelProperty(value = "有效期起", notes = "有效期起")
        private String yxqq;

        /**
         * 有效期止
         */
        @ApiModelProperty(value = "有效期止", notes = "有效期止")
        private String yxqz;
    }

    @ApiModel(value = "基础信息")
    @Data
    public static class Jcxx implements Serializable {

        private static final long serialVersionUID = 2L;

        /**
         * 纳税人识别号/统一社会信用代码
         */
        @ApiModelProperty(value = "纳税人识别号/统一社会信用代码", notes = "纳税人识别号")
        private String nsrsbh;

        /**
         * 登记序号
         */
        @ApiModelProperty(value = "登记序号", notes = "登记序号")
        private String djxh;

        /**
         * 税收档案编号
         */
        @ApiModelProperty(value = "税收档案编号", notes = "税收档案编号")
        private String ssdabh;

        /**
         * 纳税人名称
         */
        @ApiModelProperty(value = "纳税人名称", notes = "纳税人名称")
        private String nsrmc;

        /**
         * 纳税人类型标签;1：一般纳税人 2：小规模纳税人 3：转登记小规模纳税人 4：辅导期一般纳税人 5：自然人
         */
        @ApiModelProperty(value = "纳税人类型标签", notes = "1：一般纳税人 2：小规模纳税人 3：转登记小规模纳税人 4：辅导期一般纳税人 5：自然人")
        private String nsrlx;

        /**
         * 生产经营地址
         */
        @ApiModelProperty(value = "生产经营地址", notes = "生产经营地址")
        private String scjydz;

        /**
         * 注册地邮政编码
         */
        @ApiModelProperty(value = "注册地邮政编码", notes = "注册地邮政编码")
        private String zcdyzbm;

        /**
         * 注册地联系电话
         */
        @ApiModelProperty(value = "注册地联系电话", notes = "注册地联系电话")
        private String zcdlxdh;

        /**
         * 法人名称(法定代表人姓名
         */
        @ApiModelProperty(value = "法人名称", notes = "法人名称")
        private String fddbrxm;

        /**
         * 登记注册类型（国标）
         */
        @ApiModelProperty(value = "登记注册类型（国标）", notes = "登记注册类型（国标）")
        private String djzclxdm;

        /**
         * 行业代码;主行业代码特定征收部门可空
         */
        @ApiModelProperty(value = "行业代码", notes = "主行业代码特定征收部门可空")
        private String hydm;

        /**
         * 企业行业性质;成品油生产企业、成品油经销企业、国内机动车生产企业、进口机动车生产企业驻我国办事机构或总授权代理机构、机动车授权经销企业、其他机动车贸易商、二手车市场、二手车经销企业、二手车拍卖企业、稀土矿产企业、稀土冶炼分离企业、稀土其他企业、卷烟生产企业、卷烟批发企业、卷烟出口企业、生产型出口企业、外贸型出口企业、外贸综合服务企业、特殊监管区内企业、增值税一般纳税人资格试点企业、享受出口退税政策的融资租赁企业、增值税零税率应税服务提供者、房地产开发企业、农产品深加工企业
         */
        @ApiModelProperty(value = "企业行业性质", notes = "成品油生产企业、成品油经销企业、国内机动车生产企业、进口机动车生产企业驻我国办事机构或总授权代理机构、机动车授权经销企业、其他机动车贸易商、二手车市场、二手车经销企业、二手车拍卖企业、稀土矿产企业、稀土冶炼分离企业、稀土其他企业、卷烟生产企业、卷烟批发企业、卷烟出口企业、生产型出口企业、外贸型出口企业、外贸综合服务企业、特殊监管区内企业、增值税一般纳税人资格试点企业、享受出口退税政策的融资租赁企业、增值税零税率应税服务提供者、房地产开发企业、农产品深加工企业")
        private String qyhyxzdm;

        /**
         * 税务信息: 区县级税务机关代码
         */
        @ApiModelProperty(value = "税务信息: 区县级税务机关代码", notes = "税务信息: 区县级税务机关代码")
        private String qxjswjgdm;

        /**
         * 税务信息: 税务机关代码，主管税务所科分局
         */
        @ApiModelProperty(value = "税务信息: 税务机关代码", notes = "主管税务所科分局")
        private String zgswskfjdm;

        /**
         * 税务信息: 税务机关名称，主管税务所科分局
         */
        @ApiModelProperty(value = "税务信息: 税务机关名称", notes = "主管税务所科分局")
        private String zgswskfjmc;

        /**
         * 税务信息: 开票方纳税人状态;01：受理,02：筹建期,03：正常,04：停业,05：非正常,06：清算,07：注销,08：非正常户注销,09：报验,10：核销报验,11：中断缴费,12：恢复缴费,13：简易注销无异议,99：其他
         */
        @ApiModelProperty(value = "税务信息: 开票方纳税人状态", notes = "01：受理,02：筹建期,03：正常,04：停业,05：非正常,06：清算,07：注销,08：非正常户注销,09：报验,10：核销报验,11：中断缴费,12：恢复缴费,13：简易注销无异议,99：其他")
        private String nsrztdm;

        /**
         * 税务信息: 纳税人类型标签有效期起;格式：YYYY-MM-DD
         */
        @ApiModelProperty(value = "税务信息: 纳税人类型标签有效期起", notes = "格式：YYYY-MM-DD")
        private Date yxqq;

        /**
         * 税务信息: 纳税人类型标签有效期止;格式：YYYY-MM-DD
         */
        @ApiModelProperty(value = "税务信息: 纳税人类型标签有效期止", notes = "格式：YYYY-MM-DD")
        private Date yxqz;

        /**
         * 税务信息: 消费税纳税人类型;卷烟生产消费税纳税人、卷烟批发消费税纳税人、雪茄烟生产消费税纳税人、烟丝生产消费税纳税人、白酒生产消费税纳税人、黄酒生产消费税纳税人、啤酒生产消费税纳税人、其他酒生产消费税纳税人、高档化妆品生产消费税纳税人、金银首饰铂金首饰和钻石及钻石饰品零售消费税纳税人、其他贵重首饰和珠宝玉石生产消费税纳税人、鞭炮焰火生产消费税纳税人、汽油生产消费税纳税人、柴油生产消费税纳税人、航空煤油生产消费税纳税人、石脑油生产消费税纳税人、溶剂油生产消费税纳税人、润滑油生产消费税纳税人、燃料油生产消费税纳税人、摩托车生产消费税纳税人、小汽车生产消费税纳税人、超豪华小汽车零售消费税纳税人、高尔夫球及球具生产消费税纳税人、高档手表生产消费税纳税人、游艇生产消费税纳税人、木制一次性筷子生产消费税纳税人、实木地板生产消费税纳税人、电池生产消费税纳税人、涂料生产消费税纳税人
         */
        @ApiModelProperty(value = "税务信息: 消费税纳税人类型", notes = "卷烟生产消费税纳税人、卷烟批发消费税纳税人、雪茄烟生产消费税纳税人、烟丝生产消费税纳税人、白酒生产消费税纳税人、黄酒生产消费税纳税人、啤酒生产消费税纳税人、其他酒生产消费税纳税人、高档化妆品生产消费税纳税人、金银首饰铂金首饰和钻石及钻石饰品零售消费税纳税人、其他贵重首饰和珠宝玉石生产消费税纳税人、鞭炮焰火生产消费税纳税人、汽油生产消费税纳税人、柴油生产消费税纳税人、航空煤油生产消费税纳税人、石脑油生产消费税纳税人、溶剂油生产消费税纳税人、润滑油生产消费税纳税人、燃料油生产消费税纳税人、摩托车生产消费税纳税人、小汽车生产消费税纳税人、超豪华小汽车零售消费税纳税人、高尔夫球及球具生产消费税纳税人、高档手表生产消费税纳税人、游艇生产消费税纳税人、木制一次性筷子生产消费税纳税人、实木地板生产消费税纳税人、电池生产消费税纳税人、涂料生产消费税纳税人")
        private String xfsnsrlxdm;

        /**
         * 财务信息：财务负责人姓名
         */
        @ApiModelProperty(value = "财务信息：财务负责人姓名", notes = "财务信息：财务负责人姓名")
        private String cwfzrxm;

        /**
         * 财务信息：账户名称
         */
        @ApiModelProperty(value = "财务信息：账户名称", notes = "财务信息：账户名称")
        private String khhmc;

        /**
         * 财务信息：账号:首选账户账号
         */
        @ApiModelProperty(value = "财务信息：账号", notes = "首选账户账号")
        private String yhzh;

        /**
         * 财务信息：企业办税人员姓名
         */
        @ApiModelProperty(value = "财务信息：企业办税人员姓名", notes = "财务信息：企业办税人员姓名")
        private String bsrxm;

        /**
         * 财务信息：新电票试点企业标识;Y：新电票试点企业,N：不是新电票试点企业
         */
        @ApiModelProperty(value = "财务信息：新电票试点企业标识", notes = "Y：新电票试点企业,N：不是新电票试点企业")
        private String xdpsdqybz;

        /**
         * 财务信息：出口企业分类;空：非出口企业,01：一类出口企业,02：二类出口企业
         */
        @ApiModelProperty(value = "财务信息：出口企业分类", notes = "空：非出口企业,01：一类出口企业,02：二类出口企业")
        private String ckqyfldm;

        /**
         * 财务信息：总分机构类型;总机构,分支机构,非总分机构
         */
        @ApiModelProperty(value = "财务信息：总分机构类型", notes = "总机构,分支机构,非总分机构")
        private String zfjglxdm;

        /**
         * 财务信息：银行营业网点
         */
        @ApiModelProperty(value = "财务信息：银行营业网点", notes = "财务信息：银行营业网点")
        private String yhyywddm;
    }
}
